<?php
namespace Admin\Controller;
use Think\Controller;
class GoodsController extends Controller {
    //显示和处理表单
    public function add() {
        //判断用户是否提交了表单
        if(IS_POST) {
            //dump($_POST);die;
            $model = D('goods');
            //2.CREATE方法：a.接收表单数据并保存到模型中;b.根据模型中定义的规则验证表单
            /**
             * 第一个参数：要接收的数据默认是$_POST
             * 第二个参数：表单的类型，当前是添加数据的表单还是修改数据的表单，1：添加 2：修改
             * $_POST：表单中原始的数据   I('post.'):过滤之后的$_POST的数据，过滤的目的：过滤XSS攻击
             */
            if($model->create(I('post.'),1)) {
                //插入到数据库中
                if($model->add()) {
                    //显示成功信息并等待2秒之后跳转，默认是1s
                    $this->success('操作成功！',U('lst'),2);
                    exit;
                }
            }
            //如果走到这，说明上面失败了，在这里处理失败的请求
            //从模型中取出失败的原因
            $error = $model->getError();
            //由控制器显示错误信息,并在3秒跳回上一个页面，其余两个参数类似于success方法的后两个参数
            $this->error($error);
        }

        //取出所有的会员级别
        $mlModel = D('member_level');
        $mlData = $mlModel->select();

        //设置页面信息
        $this->assign(array(
            'mlData'            =>  $mlData,
            '_page_title'       =>  '添加新商品',
            '_page_btn_name'    =>  '商品列表',
            '_page_btn_link'    =>  U('lst')
        ));

        //1.显示表单
        $this->display();

    }

    //修改商品
    public function edit() {
        $id = I('get.id');      //要修改的商品的ID
        $model = D('goods');
        //判断用户是否提交了表单
        if(IS_POST) {
            if($model->create(I('post.'),2)) {
                if(FALSE !== $model->save()) {  //save()的返回值是：如果失败返回false，如果成功返回受影响的条数【如果修改后和修改前相同就会返回0】
                    $this->success('操作成功！',U('lst'),2);
                    exit;
                }
            }
            $error = $model->getError();
            $this->error($error);
        }
        //根据ID取出要修改的商品原信息
        $data = $model->find($id);
        $this->assign('data',$data);

        //设置页面信息
        $this->assign(array(
            '_page_title'       =>  '修改商品',
            '_page_btn_name'    =>  '商品列表',
            '_page_btn_link'    =>  U('lst')
        ));

        $this->display();

    }

    //删除商品
    public function delete() {
        $model = D('goods');
        if(FALSE !== $model->delete(I('get.id')))
            $this->success('删除成功！',U('lst'));
        else
            $this->error('删除失败！原因：'.$model->getError());
    }
    //商品列表页
    public function lst() {
        //dump(get_defined_constants(true)); 打印目前tp框架中用到的常量信息
        $model = D('goods');
        //返回这个页面的数据和翻页的字符串
        $data = $model->search();
        //dump($data);die;
        $this->assign($data);

        //设置页面信息
        $this->assign(array(
            '_page_title'   =>  '商品列表',
            '_page_btn_name'    =>  '添加新商品',
            '_page_btn_link'    =>  U('add')
        ));
        $this->display();
    }


}